home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / obero / oberon_lib.lha / oberon-a / source1.lha / source / Amiga / KeyMapLib.mod < prev    next >
Text File  |  1994-08-08  |  3KB  |  106 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: KeyMapLib.mod $
  4.   Description: Keymap library definitions
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 01:10:01 $
  10.  
  11.   $VER: keymap_protos.h 36.4 (19.7.90)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. MODULE KeyMapLib;
  24.  
  25. (*
  26. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  27. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  28. ** $V- OvflChk       $Z- ZeroVars
  29. *)
  30.  
  31. IMPORT E := Exec, IE := InputEvent, KM := KeyMap, SYS := SYSTEM;
  32.  
  33. (*-- KeyMap Base variable --------------------------------------------*)
  34.  
  35. TYPE
  36.  
  37.   KeyMapBasePtr = CPOINTER TO KeyMapBase;
  38.   KeyMapBase = RECORD (E.Library) END;
  39.  
  40. CONST
  41.  
  42.   name * = "keymap.library";
  43.  
  44. VAR
  45.  
  46.   base * : KeyMapBasePtr;
  47.  
  48.  
  49. (*-- Library Functions ------------------------------------------------*)
  50.  
  51. (*--- functions in V36 or higher (Release 2.0) ---*)
  52.  
  53. LIBCALL (base : KeyMapBasePtr) SetKeyMapDefault*
  54.   ( keyMap [8] : KM.KeyMapPtr );
  55.   -30;
  56.  
  57. LIBCALL (base : KeyMapBasePtr) AskKeyMapDefault* ()
  58.   : KM.KeyMapPtr;
  59.   -36;
  60.  
  61. LIBCALL (base : KeyMapBasePtr) MapRawKey*
  62.   ( event      [8] : IE.InputEventBasePtr;
  63.     VAR buffer [9] : ARRAY OF CHAR;
  64.     length     [1] : LONGINT;
  65.     keyMap    [10] : KM.KeyMapPtr )
  66.   : INTEGER;
  67.   -42;
  68.  
  69. LIBCALL (base : KeyMapBasePtr) MapANSI*
  70.   ( string     [8] : ARRAY OF CHAR;
  71.     count      [0] : LONGINT;
  72.     VAR buffer [9] : ARRAY OF CHAR;
  73.     length     [1] : LONGINT;
  74.     keyMap    [10] : KM.KeyMapPtr )
  75.   : LONGINT;
  76.   -48;
  77.  
  78. (*-- Library Base variable --------------------------------------------*)
  79. (* $L- Address globals through A4 *)
  80.  
  81. (*-----------------------------------*)
  82. PROCEDURE* CloseLib ();
  83.  
  84. BEGIN (* CloseLib *)
  85.   IF base # NIL THEN E.base.CloseLibrary (base) END
  86. END CloseLib;
  87.  
  88. (*-----------------------------------*)
  89. PROCEDURE OpenLib * (mustOpen : BOOLEAN);
  90.  
  91. BEGIN (* OpenLib *)
  92.   IF base = NIL THEN
  93.     base :=
  94.       SYS.VAL
  95.         ( KeyMapBasePtr,
  96.           E.base.OpenLibrary (name, E.libraryMinimum) );
  97.     IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
  98.     ELSIF mustOpen THEN HALT (100)
  99.     END;
  100.   END;
  101. END OpenLib;
  102.  
  103. BEGIN
  104.   base := NIL
  105. END KeyMapLib.
  106.